import away3d.materials.Material;

import com.powerfl.frm.taf.*;

import flash.display.*;
import flash.filters.*;
import flash.geom.*;

internal function materialGet( $param:Array ):Material{
	var temp:*, key:String;
	switch( $param[0] ){
	case'bitmap':
		temp = poolPullBitmapMaterial( $param[1] is BitmapData ? $param[1] : bitmapDataGet( $param[1] ) );
		break;
	case'color':
		temp = poolPullColorMaterial( $param[1] );
		break;
	case'wire':
		temp = poolPullWireframeMaterial( $param[1], $param[2] );
		break;
	case'flv':
		temp = poolPullFlv( $param[1], $param[2] );
		temp.play();
		break;
	case'normal':
		temp = new Dot3BitmapMaterialF10( 
			$param[1] is BitmapData ? $param[1] : bitmapDataGet( $param[1] ),
			$param[2] is BitmapData ? $param[2] : bitmapDataGet( $param[2] ),
			{smooth:true, shininess:$param[3], specular:$param[4]}
		);
		break;
//	case'phong':
//		temp = new PhongBitmapMaterial( 
//			$param[1] is BitmapData ? $param[1] : bitmapDataGet( $param[1] ),
//			{smooth:true, shininess:$param[2], specular:$param[3]}
//		);
//		break;
	}
	return temp;
}
	
	
//	if( $key is Array ){
//		if( $key.length === 3 ){
//			temp = new Dot3BitmapMaterialF10( getBitmapData( $key[0] ), getBitmapData( $key[1] ), {smooth:true, specular:$key[2]} );
//		}else if( $key.length === 2 ){
//			temp = new WireframeMaterial( $key[0], {thickness:$key[1]} );
//		}else{
//			error( '알 수 없는 재질 배열입니다.' );
//		}

//	}else if( $key.toString() === '[object Object]' ){
//		if( $key.bitmap ){
//			temp = '@material' + $key.bitmap + ':' + $key.specular + ':' + $key.shininess;
//			if( tdata( temp ) ){}else{
//				data = $key.bitmap;
//				delete $key.bitmap;
//				addData( temp, new PhongBitmapMaterial( getBitmapData( data ), $key ), '@material' );
//			}
//			setBitmapMaterialConnects( $key, temp );
//		}else if( $key.color is Number ){
//			temp = '@material' + $key.color + ':' + $key.ambient + ':' + $key.diffuse + ':' + $key.specular + ':' + $key.shininess;
//			if( tdata( temp ) ){}else{
//				data = $key.color;
//				delete $key.color;
//				addData( temp, new ShadingColorMaterial( data, $key ), '@material' );
//			}
//		}
//		temp = tdata( temp );
//	}else{
//		error( '알 수 없는 재질 타입입니다.1' );
//	}